<?php

require_once 'components/page.php';
require_once 'components/security/datasource_security_info.php';
require_once 'components/security/security_info.php';
require_once 'components/security/hardcoded_auth.php';
require_once 'components/security/user_grants_manager.php';

$users = array('muxekita' => 'josefina01');

$usersIds = array('muxekita' => -1);

$dataSourceRecordPermissions = array();

$grants = array('guest' => 
        array()
    ,
    'defaultUser' => 
        array('familiaproducto' => new DataSourceSecurityInfo(false, false, false, false),
        'familiaproducto.tipoproducto' => new DataSourceSecurityInfo(false, false, false, false),
        'tipoproducto' => new DataSourceSecurityInfo(false, false, false, false),
        'tipoproducto.producto' => new DataSourceSecurityInfo(false, false, false, false),
        'producto' => new DataSourceSecurityInfo(false, false, false, false),
        'producto.stock' => new DataSourceSecurityInfo(false, false, false, false),
        'producto.foto' => new DataSourceSecurityInfo(false, false, false, false),
        'stock' => new DataSourceSecurityInfo(false, false, false, false),
        'cliente' => new DataSourceSecurityInfo(false, false, false, false),
        'cliente.contacto' => new DataSourceSecurityInfo(false, false, false, false),
        'cliente.registro' => new DataSourceSecurityInfo(false, false, false, false),
        'proveedor' => new DataSourceSecurityInfo(false, false, false, false),
        'proveedor.contacto' => new DataSourceSecurityInfo(false, false, false, false),
        'proveedor.registro' => new DataSourceSecurityInfo(false, false, false, false),
        'productoproveedor' => new DataSourceSecurityInfo(false, false, false, false),
        'contacto' => new DataSourceSecurityInfo(false, false, false, false),
        'registro' => new DataSourceSecurityInfo(false, false, false, false),
        'tipocontribuyente' => new DataSourceSecurityInfo(false, false, false, false),
        'tipocontribuyente.cliente' => new DataSourceSecurityInfo(false, false, false, false),
        'tipocontribuyente.proveedor' => new DataSourceSecurityInfo(false, false, false, false),
        'banner' => new DataSourceSecurityInfo(false, false, false, false),
        'foto' => new DataSourceSecurityInfo(false, false, false, false))
    ,
    'muxekita' => 
        array('familiaproducto' => new DataSourceSecurityInfo(false, false, false, false),
        'familiaproducto.tipoproducto' => new DataSourceSecurityInfo(false, false, false, false),
        'tipoproducto' => new DataSourceSecurityInfo(false, false, false, false),
        'tipoproducto.producto' => new DataSourceSecurityInfo(false, false, false, false),
        'producto' => new DataSourceSecurityInfo(false, false, false, false),
        'producto.stock' => new DataSourceSecurityInfo(false, false, false, false),
        'producto.foto' => new DataSourceSecurityInfo(false, false, false, false),
        'stock' => new DataSourceSecurityInfo(false, false, false, false),
        'cliente' => new DataSourceSecurityInfo(false, false, false, false),
        'cliente.contacto' => new DataSourceSecurityInfo(false, false, false, false),
        'cliente.registro' => new DataSourceSecurityInfo(false, false, false, false),
        'proveedor' => new DataSourceSecurityInfo(false, false, false, false),
        'proveedor.contacto' => new DataSourceSecurityInfo(false, false, false, false),
        'proveedor.registro' => new DataSourceSecurityInfo(false, false, false, false),
        'productoproveedor' => new DataSourceSecurityInfo(false, false, false, false),
        'contacto' => new DataSourceSecurityInfo(false, false, false, false),
        'registro' => new DataSourceSecurityInfo(false, false, false, false),
        'tipocontribuyente' => new DataSourceSecurityInfo(false, false, false, false),
        'tipocontribuyente.cliente' => new DataSourceSecurityInfo(false, false, false, false),
        'tipocontribuyente.proveedor' => new DataSourceSecurityInfo(false, false, false, false),
        'banner' => new DataSourceSecurityInfo(false, false, false, false),
        'foto' => new DataSourceSecurityInfo(false, false, false, false))
    );

$appGrants = array('guest' => new DataSourceSecurityInfo(false, false, false, false),
    'defaultUser' => new DataSourceSecurityInfo(true, false, false, false),
    'muxekita' => new AdminDataSourceSecurityInfo());

$tableCaptions = array('familiaproducto' => 'Familiaproducto',
'familiaproducto.tipoproducto' => 'Familiaproducto.Tipoproducto',
'tipoproducto' => 'Tipoproducto',
'tipoproducto.producto' => 'Tipoproducto.Producto',
'producto' => 'Producto',
'producto.stock' => 'Producto.Stock',
'producto.foto' => 'Producto.Foto',
'stock' => 'Stock',
'cliente' => 'Cliente',
'cliente.contacto' => 'Cliente.Contacto',
'cliente.registro' => 'Cliente.Registro',
'proveedor' => 'Proveedor',
'proveedor.contacto' => 'Proveedor.Contacto',
'proveedor.registro' => 'Proveedor.Registro',
'productoproveedor' => 'Productoproveedor',
'contacto' => 'Contacto',
'registro' => 'Registro',
'tipocontribuyente' => 'Tipocontribuyente',
'tipocontribuyente.cliente' => 'Tipocontribuyente.Cliente',
'tipocontribuyente.proveedor' => 'Tipocontribuyente.Proveedor',
'banner' => 'Banner',
'foto' => 'Foto');

function SetUpUserAuthorization()
{
    global $usersIds;
    global $grants;
    global $appGrants;
    global $dataSourceRecordPermissions;
    $userAuthorizationStrategy = new HardCodedUserAuthorization(new HardCodedUserGrantsManager($grants, $appGrants), $usersIds);
    GetApplication()->SetUserAuthorizationStrategy($userAuthorizationStrategy);

GetApplication()->SetDataSourceRecordPermissionRetrieveStrategy(
    new HardCodedDataSourceRecordPermissionRetrieveStrategy($dataSourceRecordPermissions));
}

function GetIdentityCheckStrategy()
{
    global $users;
    return new SimpleIdentityCheckStrategy($users, '');
}

?>